package main

import (
	_ "golang-swagger/docs"

	"github.com/gin-gonic/gin"
	swaggerFiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
)

// @title Swagger Example API
// @version 1.0
// @description This is a sample server.
// @termsOfService http://swagger.io/terms/

// @contact.name API Support
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io

// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html

// @host localhost:8080
// @BasePath /api/v1
func main() {
	r := gin.Default()

	// Swagger UI 路由
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

	// 示例 API 路由
	r.GET("/user/:id", GetUser)

	// 运行 Gin 服务器
	r.Run(":9090")
}

// User 用户结构体
type User struct {
	ID   string `json:"id" example:"1"`
	Name string `json:"name" example:"John Doe"`
	Age  int    `json:"age" example:"30"`
}

// GetUser 获取用户信息
// @Summary 获取用户信息
// @Description 通过用户 ID 获取用户详细信息
// @Tags users
// @Accept  json
// @Produce  json
// @Param id path string true "用户ID"
// @Success 200 {object} User
// @Router /user/{id} [get]
func GetUser(c *gin.Context) {
	id := c.Param("id")

	// 这里是示例数据，实际中将从数据库查询
	user := User{
		ID:   id,
		Name: "John Doe",
		Age:  30,
	}

	c.JSON(200, user)
}
